Computerized databases are used to store large amounts of information. This information is often organized in a hierarchical fashion, e.g. into fields, records, sets, etc. Such a hierarchical organization tends to be virtual, rather than physical, based upon the algorithms implemented by the database management systems.
Databases can be of various types, including flat databases and relational databases. Generally speaking, relational databases are preferred when dealing with large numbers of records which need to be accessed in a variety of ways. For example, many business organizations use a relational database to handle their human resource (“HR”) function.
Databases are usually administered by one or more database administrators. In small organizations, such in a small business, there may be only one administrator for the database. This has the advantage of simplicity, in that it reduces potential conflicts. However, in large companies it is impractical to have a single administrator to handle an entire database function, e.g. the HR database function and, therefore, conflicts between multiple administrators occur and must be handled.
One way to handle the potential conflict of having multiple administrators trying to access and perhaps change the same data can be handled with the provision of database locks. That is, if a first administrator (referred to herein as a “prior administrator”) accesses a particular set of records, a “lock” on those records can be implemented such that a second administrator (referred to herein as a “new administrator”) is prevented from at least changing that those records. In many instances, the new administrator may be prevented from even viewing the locked files.
This method of locking portions of a database has the advantage of preventing the inherent conflicts and potential instability of the database when two or more administrators access the same data at the same time. For example, if both administrators were attempting to update the same field within a record, the system could be destabilized and data could be lost or corrupted.
A problem that happens from time to time in large organizations is that a prior administrator unnecessarily locks out a new administrator. For example, with systems in the prior art, when a prior administrator first accesses or “queries” the records, a lock is immediately put in place. However, it could be that the prior administrator does not even have privileges sufficient to allow access to those records. In consequence, neither the prior administrator nor the new administrator can access that information. In fact, until the prior administrator has released the lock, no new administrator can be provided with access to those files. This can be very troublesome in large organizations where there may be hundreds of administrators located in multiple countries around the world. That is, it maybe hard to identify the administrator who is locking up the records and, in fact, the records may become inaccessible for an extended period of time.
This problem has no easy solution, and has been long-felt in the industry. The logical solution would be not provide a lock to any potential administrator if they do not have the authority to view or manipulate those records. However, to fully check all of the privileges for all applicable records might require thousands of database queries. Even with modern, high speed computers such searches would be too time consuming to be practical.